#include <iostream>
#include <map>

using namespace std;
//map插入和删除:map容器进行插入数据和删除数据

//函数原型：
//1、insert(elem);           //在容器中插入元素。
//2、clear();                //清除所有元素
//3、erase(pos);             //删除pos迭代器所指的元素，返回下一个元素的迭代器。
//4、erase(beg, end);        //删除区间[beg,end)的所有元素 ，返回下一个元素的迭代器。
//5、erase(key);             //删除容器中值为key的元素。

void printM(map<int, int> &m) {
    for (map<int, int>::iterator it = m.begin(); it != m.end(); ++it) {
        cout << "key=" << it->first << ",value=" << it->second << endl;
    }
    cout << endl;
}

void test() {
    map<int, int> m;
    m.insert(pair<int, int>(1, 10));//第一种插入方式
    m.insert(make_pair(2, 20));//第二种插入方式
    m.insert(map<int, int>::value_type(3, 30));//第三种插入方式
    m[4] = 40;//第四种插入方式
    //不建议用[]插入，用途 可以利用key访问到value
    printM(m);

    m.erase(m.begin());//删除
    printM(m);
    m.erase(3);//按照key值删除
    printM(m);

    //m.erase(m.begin(),m.end());
    m.clear();//清空
    printM(m);
}

int main() {
    test();
    return 0;
}